Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updates and Improvements to REFLO System Costing #136

Merged
merged 72 commits into from
Nov 15, 2024

Conversation

MuktaHardikar
Copy link
Collaborator

@MuktaHardikar MuktaHardikar commented Oct 22, 2024

This PR includes changes to the REFLO costing method to track energy (electricity/heat) purchased, sold and produced/used by the treatment and energy blocks.

  • Default price of heat and electricity updated to be 0
  • Purchase price and sale price for heat and electricity added
  • Variable to track energy purchased/sold added-Based on Darices method
  • Add initialization to REFLOSystemCosting
  • Add scaling factors to REFLOSystemCosting
  • Add LCOE and calculations for yearly and total electricity production
  • Add LCOH and calculations for yearly and total heat production
  • Add LCOT (levelized cost of treatment)
  • Update LCOW
  • Add many tests to test all three costing under all combinations of electricity/heat consumption/generation
  • Add check for common parameter equivalence for all three costing packages in REFLOSystemCosting
  • Remove ability to add_LCOW from EnergyCosting
  • fix failing unit model costing tests that relied on energy prices != 0
  • Add the cost of electricity and heat calculated to total operating cost

Future PR:

  • Need a way to separate capital/operating costs related to electricity and heat generating systems so the proper value is used in LCOE/LCOH calculations when both are present on the energy costing block.

@zacharybinger
Copy link
Collaborator

We should merge this asap so that way all the tests are updated for the subsequent PRs

@@ -92,6 +92,7 @@ def build_photovoltaic_cost_param_block(blk):
)
def cost_pv(blk):

blk.costing_package.has_electricity_generation = True
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a comment on PV costs: it would be totally fair to cost PV out on a $/kW_dc basis. I remember using numbers on the order of $1000 - $2000/kWdc

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is how we do it already?

@kurbansitterley kurbansitterley changed the title Updates to REFLO System Costing Updates and Improvements to REFLO System Costing Nov 14, 2024
@kurbansitterley
Copy link
Contributor

would resolve #28

mutable=True,
initialize=0.07,
doc="Electricity cost to buy",
units=pyo.units.USD_2018 / pyo.units.kWh,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
units=pyo.units.USD_2018 / pyo.units.kWh,
units=self.base_currency / pyo.units.kWh,

mutable=True,
initialize=0.05,
doc="Electricity cost to sell",
units=pyo.units.USD_2018 / pyo.units.kWh,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
units=pyo.units.USD_2018 / pyo.units.kWh,
units=self.base_currency / pyo.units.kWh,

mutable=True,
initialize=0.07,
doc="Heat cost to buy",
units=pyo.units.USD_2018 / pyo.units.kWh,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
units=pyo.units.USD_2018 / pyo.units.kWh,
units=self.base_currency / pyo.units.kWh,

mutable=True,
initialize=0.05,
doc="Heat cost to sell",
units=pyo.units.USD_2018 / pyo.units.kWh,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
units=pyo.units.USD_2018 / pyo.units.kWh,
units=self.base_currency / pyo.units.kWh,

@kurbansitterley kurbansitterley merged commit 35d4110 into watertap-org:main Nov 15, 2024
18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Priority:High Normal Priority Issue or PR
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants